#ifndef _XX_YY_BMOCK_OUT_STR_ARG_VAL
#define _XX_YY_BMOCK_OUT_STR_ARG_VAL
#include "bmock_out_ptr_arg_val.hpp"

namespace bmock {
	struct out_str_arg_val : public out_ptr_arg_val<char> {
		            out_str_arg_val(const char *const n,char *const vp);
	protected:
		bool        update_out_value(const arg_checker &chk,const std::string &v) const;
		void        update(const std::string &v,const control_tools_ptr&,int index) const;
		bool        null_supplied() const;
		std::string get_out_value() const;
					~out_str_arg_val();
		out_str_arg_val &operator = (const out_str_arg_val &) {
					return *this;
		}
	};

	inline arg_val *const make_out_arg_val(const char *const n,char *const vp) {
		return new out_str_arg_val(n,vp);
	}
	inline arg_val *const make_out_arg_val(const char *const n,unsigned char *const vp) {
		return new out_str_arg_val(n,(char *const)vp);
	}
}
#endif